/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package reportes;

/*
 * librerias de ireport
 */
import dataBase.Db;
import hate.fecha;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
import usuarios.Vendedor;

/**
 * @web http://jc-mouse.blogspot.com/
 *
 * @author Mouse
 */
public class IReportClass  {
    //se estable una conexion con la base de datos

    private Conexion con = new Conexion();
    /*
     * reporte sencillo con conexion a base de datos MySQL, el reporte no cuenta
     * con parametros
     */
    private IngresarFecha ife;
    private String nombreReporte;
    private Vendedor v;
    
    

    
    public void finDeTurno(final Vendedor v1) {
        v =v1;
        
            nombreReporte = "FinDelTurno.jasper";
            
                    
        
        ife = new IngresarFecha();
        ife.setVisible(true);

        ife.getAceptar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {

                  String text ="%";
                 text += ife.getFieldFecha().getText();
                text +="%";
                Map parameters = new HashMap();
                parameters.put("fecha", text);
                int idVendedor = v.getIdVendedor();
                
                parameters.put("idvendedor",idVendedor);
            creoReporteFinDeTurno(parameters);

            }

           
        });
        
        ife.getHoy().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
               
                ife.setVisible(false);
                
                Db db = new Db();
                String text= "";
                try {
                    ResultSet eq = db.getStatement().executeQuery("select now()");
                    eq.next();
                    text = String.valueOf(eq.getDate(1));
                    db.getStatement().close();
                       } catch (SQLException ex) {
                    Logger.getLogger(IReportClass.class.getName()).log(Level.SEVERE, null, ex);
                }
                
                text ="%"+text.substring(0, 10);
                
                        
                    
                 
                     text += ife.getFieldFecha().getText();
                    text +="%";
                    
                    Map parameters = new HashMap();
                    parameters.put("fecha", text);
                    int idVendedor = v.getIdVendedor();
                    
                    parameters.put("idvendedor",idVendedor);
                creoReporteFinDeTurno(parameters);
             
                
            }
        });
        
        ife.getCancelar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
           
                ife.setVisible(false);
                
            }
        });


        
        
    }

    public void crearReporte() throws JRException {

        nombreReporte = "FinDelDia.jasper";
        
        ife = new IngresarFecha();
        ife.setVisible(true);

        ife.getAceptar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {

                
                ife.setVisible(false);
                String text = ife.getFieldFecha().getText();
                
                Map parameters = new HashMap();
                parameters.put("fecha", text);
                try {
                    
                    reporte(nombreReporte, parameters);
                } catch (JRException ex) {
                    Logger.getLogger(IReportClass.class.getName()).log(Level.SEVERE, null, ex);
                }

            }
        });
        
        ife.getHoy().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
               
                ife.setVisible(false);
                String text = new fecha().fecha_hoy();

                Map parameters = new HashMap();
                parameters.put("fecha", text);
                try {
                    reporte(nombreReporte, parameters);
                } catch (JRException ex) {
                    Logger.getLogger(IReportClass.class.getName()).log(Level.SEVERE, null, ex);
                }
                
                
            }
        });
        
        ife.getCancelar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
           
                ife.setVisible(false);
                
            }
        });








    }

    public void reporte(String nombreReporte, Map parameters) throws JRException {


        JasperReport reporte;
        JasperPrint reporte_view;
        try {
            //direccion del archivo JASPER
            URL in = this.getClass().getResource(nombreReporte);

            
            reporte = (JasperReport) JRLoader.loadObject(in);

            
            reporte_view = JasperFillManager.fillReport(reporte, parameters, con.getConnection());
            
            
           
            JasperViewer.viewReport(reporte_view,false);
            //terminamos la conexion a la base de datos
            con.desconectar();
        } catch (JRException E) {
            E.printStackTrace();
        }
    }
    
    
    
    
     private void creoReporteFinDeTurno(Map parameters) {
                  ife.setVisible(false);
              
                try {
                    reporte(nombreReporte, parameters);
                } catch (JRException ex) {
                    Logger.getLogger(IReportClass.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
    
}